home *** CD-ROM | disk | FTP | other *** search
/ Adobe Graphics & Publishing SDK 1996 December / Adobe Graphics & Publishing SDK 1996 December.iso / mac / After Effects 3.1 SDK Mac / Examples / Header Files / FIEL_Public.h < prev    next >
Text File  |  1996-06-13  |  3KB  |  76 lines

  1. /**    FIEL_Public.h
  2.     
  3.     Part of the Adobe After Effects 3.1 SDK.
  4.     Copyright (c) 1992-96 Adobe Systems Inc.
  5.     All Rights Reserved.
  6.  
  7.     The purpose of this header is to define a standard way to communicate interlace information
  8.     within common image file formats. The FIEL_Label structure should be included as a
  9.     user data of type 'FIEL' of a QuickTime movie, and as 'FIEL' resouce 128 in an
  10.     image or animation file.
  11.     
  12.     The FIEL_Label structure may also be appended to the end of an ImageDescription if the creator
  13.     is unable to add the resource or user data. Only the first FIEL_Label in the movie may be
  14.     honored, however. If a sequence of frames is composed of multiple files, the FIEL_Label from only
  15.     the first frame may be honored. In a QuickTime movie, the first user data item (index 1) will be honored.
  16.     
  17.     If the version is increased, to preserve backward compatibility we will only add types
  18.     to the existing fields or add to the end of the FIEL_Label structure.
  19.  
  20.     ***    Please note that most applications will only support interlaced full-height frames. The other
  21.     ***    formats are included so the spec is as general as possible. If you choose to store field-rendered
  22.     ***    video in one of the other formats it may not be de-interlaced properly by most applications.
  23.  
  24.     After Effects 1.0/1.1 outputs FIEL_Label version 0, with the obsolete tag 'Fiel' (not 'FIEL').
  25.     The struct has a short version (set to 0) followed by a long type that is 0 if field rendered, 1
  26.     if upper field is first, and 2 if lower field is first. All field rendered frames output from
  27.     AE 1.0/1.1 are interlaced.
  28.     
  29.     Future versions of After Effects will label all output with a version 1 or higher FIEL_Label.
  30.     
  31. **/
  32.  
  33. #ifndef _H_FIEL_PUBLIC
  34. #define _H_FIEL_PUBLIC
  35.  
  36. #define        FIEL_Label_VERSION        1
  37.  
  38. #define        FIEL_Tag                'FIEL'        // use as udata and resource type
  39. #define        FIEL_ResID                128
  40.  
  41.  
  42. enum {
  43.     FIEL_Type_FRAME_RENDERED    = 0,        // FIEL_Order is irrelevant
  44.     FIEL_Type_INTERLACED        = 1,
  45.     FIEL_Type_HALF_HEIGHT        = 2,
  46.     FIEL_Type_FIELD_DOUBLED        = 3            // 60 full size field-doubled frames/sec
  47. };
  48. typedef unsigned long    FIEL_Type;
  49.  
  50.  
  51. /*
  52.     If the frames are interlaced, the following structure tells which of the interlaced fields is
  53.     temporally first. If the frames are not interlaced but the animation was field rendered 
  54.     (i.e. half height or field doubled), the structure tells which field the first sample (if the
  55.     label is attached to a multi-sample file like a QT movie) or the current sample (if the label is
  56.     attached to a single sample like a PICT file) contains.
  57. */
  58.  
  59. enum {
  60.     FIEL_Order_UPPER_FIRST        = 0,
  61.     FIEL_Order_LOWER_FIRST        = 1
  62. };
  63. typedef unsigned long    FIEL_Order;
  64.  
  65.  
  66. typedef struct {
  67.     unsigned long    signature;        // always FIEL_Tag
  68.     short            version;
  69.     FIEL_Type        type;
  70.     FIEL_Order        order;
  71.     unsigned long    reserved;
  72. } FIEL_Label;
  73.  
  74.  
  75. #endif
  76.